产品原理

概述

全局流量管理(GTM)支持用户就近接入、高并发负载均衡、健康检查与故障切换,可以帮助企业在短时间内构建同城多活与异地灾备的容灾架构。同时GTM支持管理阿里云和非阿里云IP地址,能够方便企业客户快速构建混合云应用的灾备。

GTM属于DNS级别的服务,使用DNS向用户返回特定的服务地址,然后客户端用户直接连接到服务地址。所以GTM本身并不是代理或网关设备,也不是应用接入服务,因此看不到客户端用户与应用服务之间网络流量。

开通GTM产品实例后,用户通过设置一个CNAME接入域名,一般需要将用户访问的业务域名CNAME至全局流量管理的接入域名,才能最终实现对应用服务进行容灾切换、智能解析。

产品原理

例如网站业务域名是www.example.com

  1. GTM的地址池添加3个服务器IP地址1.1.XX.XX2.2.XX.XX3.3.XX.XX,并开启健康检查。

  2. 根据您的实际解析场景完成访问策略配置。

  3. 开通GTM实例并完成基本配置,会根据您的配置生成一个CNAME接入域名,例如: gtm.example.com

  4. 将网站业务域名www.example.com通过CNAME记录指向gtm.example.com

原理流程图解

image

原理流程说明

  • 终端向本地递归DNS系统查询应用服务域名www.example.com

  • 假设本地递归DNS系统没有www.example.com的缓存,那么本地递归DNS会向DNS根服务器发送此域名的DNS查询请求。同时DNS根服务器会根据查询域名的后缀,向本地递归DNS服务器响应.com所在的DNS服务器。

  • 本地递归DNS收到DNS根响应的.comDNS服务器地址后,会向.comDNS服务器发起www.example.com的域名查询请求。同时,.comDNS服务器收到请求后,会向本地递归DNS服务器响应example.com所在的DNS服务器,如果域名使用了云解析服务,那么这个DNS服务器就是云解析的DNS服务器。

  • 本地递归DNS收到.comDNS服务器响应的云解析DNS服务器地址后,再次向云解析DNS服务器发起www.example.com查询请求,同时云解析DNS服务器收到DNS查询请求后,在自己的数据库中发现www.example.com通过CNAME指向了GTM接入域名gtm.example.com,因此云解析DNS服务器会向本地递归DNS响应gtm.example.com

  • 本地递归DNS收到云解析DNS响应的gtm.example.com域名后,会再次向全局流量管理的DNS服务器发起gtm.example.com查询,同时,全局流量管理在收到请求后,会根据运行机制和预配置策略向本地递归DNS响应最终应用服务的地址。

  • 本地递归DNS服务器将最后一次查询获得的IP地址作为www.example.com的最终地址,返回给终端用户,同时缓存在本地,方便下次用户查询时可以直接返回结果。

  • 终端用户收到本地递归DNS服务器响应的IP地址后,直接向应用服务发起网络连接,开始进行业务通信。

产品架构

image

产品架构说明

产品架构图说明:

  • GTM系统中的DNS模块,是实现将终端用户访问解析到应用服务的地址池中的地址。其中,假如中国内地用户访问地址池A中的应用服务、境外用户访问地址池B的应用服务,并且两个地址池负载均衡策略设定为顺序。

  • GTM系统中的HealthCheck模块,会从多个地区对地址池内的多个应用服务地址发起健康探测,健康探测可以使用ping、tcp、http(s)三种方式。

  • 当地址池A中有一个应用服务地址出现故障时,HealthCheck模块会准确的检测到异常情况,同时HealthCheck模块会和DNS模块进行交互,最终是通过DNS模块将异常地址从向用户返回的应用服务地址列表中暂时删除;如果HealthCheck模块检测到应用服务的地址恢复正常,则DNS模块会将此地址恢复至应用服务的地址列表中并返回给用户。

因此,终端用户访问时可以通过全局流量管理系统自动获取最佳的应用服务,并保障用户访问的连续不中断。